/**
 * Created by gaoming on 2017/2/15.
 */
//  转换为真实数组
function G(sector){
    [].push.apply(this, G.select(sector));
}
//  设置原型上的map方法
G.prototype.map =function(callback){
    return G.map(this, callback)
}
//  设置原型上each方法
G.prototype.each =function(callback){
    return G.each(this ,callback)
}
//   判断是不是一个数组
G.isArray = function(arr){
    if( Object.prototype.toString.call(arr)  ==="[object Array]"){
        return true;
    }
    var length = "length" in arr && arr.length;
    return typeof length ==="number" && length >=0;
}
//  设置元素获取的一个方法
G.select=function(sector){
    return document.querySelectorAll(sector);
}
//  设置元素each方法
G.each = function( obj, callback){
    if(G.isArray(obj)){
        for(var i=0 ;i<obj.length; i++){
            if( callback.call(obj[i], obj[i], i)===false) break;// 改变this指向并且输入return false时结束循环
        };
    }else{
        for( var k in obj){
            if( callback.call(obj[k] ,obj[k], k)===false) break;
        }
    }
    return obj;
};
//    设置元素map方法
G.map = function( obj, callback){
    var newArr=[] ,temp,o ={};
    if(G.isArray(obj)){
        for(var i =0;i<obj.length;i++){
            temp =callback(obj[i] ,i);
            if(temp!=null){
                newArr.push(temp);
            }
        }

    }else{
        for( var k in obj){
            o.push.call(null,callback(obj[k], k));
        }
    }
    return newArr;
};
